Amazon MWAAのインプレースアップグレードを試してみた
こんにちは。サービス部の武田です。
Amazon MWAA(Managed Workflows for Apache Airflow)は、AWSマネージドなApache Airflowサービスです。Airflowクラスターを自分たちで管理することなく利用できます。
実はこれまで、MWAAのバージョンをアップグレードするには、一度環境を削除して再作成するしかありませんでした。そんな中、先日、MWAAのインプレースアップグレードが発表されました。
やってみた
そんなわけで、実際にアップグレードを試してみました。
まずはアップグレード前の環境を用意します。今回はAirflow v2.2.2を作成しました。
無事作成できました。
この時点で変数を定義したりDAGを実行したりしました。インプレースアップグレードですので、それらのデータがアップグレード後も残っているかの確認です。
アップグレードは、環境の詳細を開き、「編集」ボタンを選択します。
「環境の詳細」の中にAirflowのバージョンを選択するプルダウンがあります。ここでアップグレードするバージョンを選択します。
ちなみに、実はインプレースアップグレードがサポートされる前から、このプルダウンは存在していました。しかしバージョンを変えて保存しようとしてもエラーになって変更できませんでした。
現在のバージョンより低いバージョンもUI的には選択できますが、実際は保存時にエラーとなります。そのため、あくまでも サポートされているのはアップグレードで、ダウングレードはできません 。
またマイナーバージョンのアップグレードしかできません。つまり、1.x
から2.x
にはアップグレードできないので注意しましょう。
今回は2.5.1
を選択しました。選択すると次のような警告メッセージが表示されました。最大2時間のダウンタイムがあるようです。
When you select a new Apache Airflow minor version to upgrade your environment to, the update procedure can take up to 2 hours. Your environment will be unavailable while Amazon MWAA creates a backup of your data, updates Apache Airflow, and restores each component of the environment.
スナップショットを取り始め、アップグレードが開始されました。終わるまでしばらく待ちましょう。
アップグレードが終わりました。Airflow バージョンが2.5.1
に変わっています。
アップグレード後、データを確認してみましたが、変数やDAG実行履歴はきちんと保持されていました。いいですね!
まとめ
これまでMWAAをアップグレードするには一度環境を作り直す必要がありました。その場合変数などはすべて設定し直しになりますし、DAG実行履歴もリセットされます。今回インプレースアップグレードがサポートされたことで、それらを維持したままアップグレードが可能になりました。
アップグレードを妨げる要因が履歴等のリセットであったのであれば、今回のアップデートで解消されたでしょう。ぜひ検討してみてください。